Skip to content

Conversation

@eserscor
Copy link
Contributor

Description

Motivation and Context

- Windows_Nodejs_Packaging_x64
- Windows_Nodejs_Packaging_arm64
- Linux_Nodejs_Packaging_x64
- Linux_Nodejs_Packaging_x64_cuda_12
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should publish both CUDA 13 and 12 NodeJS packages?

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request refactors the CUDA packaging pipeline to support building and publishing packages for both CUDA 12 and CUDA 13 simultaneously. Previously, the pipeline required selecting a single CUDA version via parameter. Now it iterates over multiple CUDA versions defined in an object structure.

Changes:

  • Converted CudaVersion parameter from string/enum to object structure containing multiple CUDA versions with their respective configurations (paths, architectures, TensorRT versions)
  • Updated all CUDA packaging stages to iterate over CUDA versions and append stage tokens (cuda_12, cuda_13) to stage and artifact names
  • Modified extraction scripts to handle new artifact naming convention that includes CUDA version tokens

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tools/ci_build/github/windows/extract_zip_files_gpu.ps1 Updated regex patterns to match new artifact naming with CUDA version tokens; removed trailing whitespace
tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh Updated wildcard patterns and sed commands to handle new artifact names with CUDA version tokens; removed trailing whitespace
tools/ci_build/github/azure-pipelines/templates/c-api-cpu.yml Updated dependency to reference specific CUDA 12 nodejs packaging stage
tools/ci_build/github/azure-pipelines/stages/nuget-win-cuda-packaging-stage.yml Refactored to accept CudaVersion as object and StageToken parameter; updated all stage/artifact names to include tokens
tools/ci_build/github/azure-pipelines/stages/nuget-linux-cuda-packaging-stage.yml Refactored parameters and removed common-variables template dependency; stage/artifact names now include version tokens
tools/ci_build/github/azure-pipelines/stages/nuget-cuda-packaging-stage.yml Added StageToken parameter and updated stage dependencies and artifact names; added backward compatibility artifact
tools/ci_build/github/azure-pipelines/stages/nuget-combine-cuda-stage.yml Converted from simple parameter passing to loop iteration over CudaVersion object with each key-value pair
tools/ci_build/github/azure-pipelines/stages/nodejs-linux-packaging-stage.yml Updated to receive CudaVersion as object and StageToken; removed common-variables dependency
tools/ci_build/github/azure-pipelines/stages/java-cuda-packaging-stage.yml Wrapped in loop to create separate stages for each CUDA version with tokenized artifact names
tools/ci_build/github/azure-pipelines/stages/c-api-linux-cpu-stage.yml File deleted (previously contained Linux CPU packaging stage definition)
tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml Added structured CudaVersion parameter with all configuration; removed variables section that computed values from CudaVersion parameter

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Windows_Nodejs_Packaging_x64
- Windows_Nodejs_Packaging_arm64
- Linux_Nodejs_Packaging_x64
- Linux_Nodejs_Packaging_x64_cuda_12
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hardcoded dependency on 'Linux_Nodejs_Packaging_x64_cuda_12' is problematic. This change introduces support for both CUDA 12 and CUDA 13, but this hardcoded reference assumes only CUDA 12 exists. When the pipeline processes both CUDA versions, there will be both 'Linux_Nodejs_Packaging_x64_cuda_12' and 'Linux_Nodejs_Packaging_x64_cuda_13' stages created. The dependency should either reference both versions or be reconsidered based on whether nodejs packaging is actually required for this CPU packaging stage.

Suggested change
- Linux_Nodejs_Packaging_x64_cuda_12
- Linux_Nodejs_Packaging_x64_cuda_12
- Linux_Nodejs_Packaging_x64_cuda_13

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +3
CudaVersion:
type: object
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter definition uses an inconsistent indentation style. Line 2 uses 2-space indentation for 'CudaVersion:', but this is inconsistent with standard Azure Pipeline YAML formatting where parameters typically use hyphens. Consider using the standard format with a hyphen prefix: '- name: CudaVersion'.

Suggested change
CudaVersion:
type: object
- name: CudaVersion
type: object

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants